package valuetransfer;

/**
 * @author shkstart
 * @date 2022/4/25 - 22:32
 */

//题目思考：一开始我写赋给val地址值赋给second中的形参v还有first中的实参v。
//          但并不是，因为各个方法中的变量都是独立区分开来的，我在second
//          中将val赋给v只有在second方法中执行，并不会跳出赋给其他方法的变量。
//    总结：不同方法中的变量是独立的，赋值也是在一定的方法之内，
//          千万不能因为俩个方法中变量类型，方法名都相同，而导致理解赋值给全部同名的变量！
public class ValueTransferTest03 {
    public static void main(String[] args) {
        ValueTransferTest03 test = new ValueTransferTest03();
        test.first();
    }
    public void first() {
        int i =  5;
        Value v = new Value();
        v.i = 25;
        second(v,i);
        System.out.println(v.i);

    }
    public void second(Value v,int i) {
        i = 0;
        v.i = 20;
        Value val = new Value();
        v = val;//赋给形参v地址值 地址值是val的
        System.out.println(v.i + " " + i);
    }
}
class Value{
    int i = 15;
}
